PEKARE
I grafikbiblioteket Allegro används pekare till olika objekt, bilder och ljud t.ex.
Så innan vi tar oss an Allegro måste vi bekanta oss med
Pekare.
Hur hittar du adressen till en variabel?
Svar: Använd operatorn &.
&Henrik ger adressen till variabeln Henrik.
Övning:
Skapa variabelerna: int Hoss, little_Joe , Pappa_Ben, Adam, och double bonanza.
Kontrollera vilka minnesplatser de får.
Omvandla den hexadecimala noteringen till decimal (använd kalkylatorn i windows).
Hur stor plats tar var och en av variablerna?
Tar någon större plats än någon annan?
Vi har definierat variabler av olika slag: int, char, double m.fl.
Vid deklarationen av aktuell variabel har vi angett datatyp namn och ev. värdet på variabeln.
Namnet på variabeln har representerat ett värde.
Det finns ett annat sätt att göra detta, genom att använda en speciell typ av variabel, en pekare.
En pekare lagrar adressen till värdet.
Pekarens namn representerar alltså platsen i ramminnet.
Med operatorn * hämtas det indirekta värdet från platsen.
Om Johan är en pekare till ett int-värde, representerar Johan en adress
och *Johan det int-värde som finns på adressen.
#include
<iostream>
#include
<stdlib>
/***************************
pekar aritmetik
***************************/
int main()
{
int johanna=6; //deklarera och initiera en variabel
int *p_johanna; //pekare till johanna (int-pekare, datatyp måste anges)
p_johanna=&johanna; //tilldela pekaren adressen till en int
return 0;
}
För att returnera minnesadressen anropar du p_johanna.
För att returnera innehållet på denna minnesadress anropar du *p_johanna
Övning:
Skriv ut adressen till int johanna:
1: genom att använda variabelnamnet
2: genom att använda en pekare till johanna
Skriv ut värdet för int johanna:
1: genoma att använda variabelnamnet
2: genom att använda en pekare till johanna
Öka värdet för johanna med 1:
1: genoma att använda variabelnamnet
2: genom att använda en pekare till johanna
OBS. SE TILL ATT DU ALLTID ANGER VILKEN ADRESS EN PEKARE SKALL REFERERA TILL!
p_johanna=&johanna;